metamodel authors  
{
    enumeration position
      {
        fullProfessor; assistantProfessor; associateProfessor;
      }


    class researcher 
        { 
            attribute name : string;
            reference manuscript : paper oppositeOf author;
        }

    class professor extends researcher
        {
            attribute post : position;
        }

    class paper 
        {
            attribute title : string;
            attribute isSubmitted : bool;
            reference author : researcher oppositeOf manuscript; 
            reference venue : journal; 
        }  

    class journal
      {
        attribute name : string;
      }

}
constraints
{
   allInstances(paper)->forAll(p| p.author.size() >=1 and p.venue.size() <= 1);
}

